package com.joey.common.config;

import com.joey.common.interceptor.UserInfoInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author: Joey
 * @Description:
 * @date:2024/6/22 22:10
 */
/**
 * 这个配置类默认是不会生效的，因为它所在的包是com.hmall.common.config，与其它微服务的扫描包不一致，无法被扫描到，因此无法生效。
 * 基于SpringBoot的自动装配原理，我们要将其添加到resources目录下的META-INF/spring.factories
 *
 * */

//DispatcherServlet 前置控制器，通常配置在web.xml文件中的。
// 拦截匹配的请求，Servlet拦截匹配规则要自已定义，把拦截下来的请求，依据相应的规则分发到目标Controller来处理
@Configuration
@ConditionalOnClass(DispatcherServlet.class) //不在网关生效
public class MvcConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new UserInfoInterceptor());
    }
}
